package com.agileboot.domain.airport.report.dto;

import cn.hutool.core.bean.BeanUtil;
import com.agileboot.common.annotation.ExcelColumn;
import com.agileboot.domain.airport.report.db.SirReportEntity;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Date;

/**
 * 安全信息 DTO，用于导出和展示
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class ReportDTO {

    public ReportDTO(SirReportEntity entity) {
        if (entity != null) {
            BeanUtil.copyProperties(entity, this);
        }
    }

    @ExcelColumn(name = "报告ID")
    private Long reportId;

    @ExcelColumn(name = "标题")
    private String title;

    @ExcelColumn(name = "终端类型")
    private String terminalType;

    @ExcelColumn(name = "信息来源")
    private String infoSource;

    @ExcelColumn(name = "信息描述")
    private byte[] infoDescribe;

    @ExcelColumn(name = "责任单位ID")
    private Long dutyDeptId;

    @ExcelColumn(name = "发现人")
    private Long discoverer;

    @ExcelColumn(name = "发现时间")
    private Date discoveryDate;

    @ExcelColumn(name = "发现地点")
    private String discoveryPlace;

    @ExcelColumn(name = "是否隐藏报告人")
    private String hiddenPeopleFlag;

    @ExcelColumn(name = "接收部门ID")
    private Long acceptDeptId;

    @ExcelColumn(name = "信息分类")
    private String reportType;

    @ExcelColumn(name = "闭环状态")
    private String status;

    @ExcelColumn(name = "联系人ID")
    private Long contactPerson;

    @ExcelColumn(name = "联系电话")
    private String contactPhone;

    @ExcelColumn(name = "来源主键")
    private Long sourceId;

    @ExcelColumn(name = "来源类型")
    private String sourceType;

    @ExcelColumn(name = "是否归档")
    private Integer fileFlag;

    @ExcelColumn(name = "反馈信息")
    private String feedback;

    @ExcelColumn(name = "创建时间")
    private Date createTime;

    @ExcelColumn(name = "更新时间")
    private Date updateTime;

    @ExcelColumn(name = "责任单位名称")
    private String deptName;

    @ExcelColumn(name = "处理单位名称")
    private String dealDeptName;


    @ExcelColumn(name = "发现人名称")
    private String discoverUserName;

    @ExcelColumn(name = "检查项ID")
    private Long inspectionCheckId;

    @ExcelColumn(name = "接收人")
    private String updaterBy;


    @ExcelColumn(name = "法律法规依据")
    private String basis;


    @ExcelColumn(name = "关联的整改通知书编号")
    private String relatedReformCode;


}
